<!DOCTYPE html>
<html lang="en">
    <head>
        <meta charset="UTF-8" />
        <meta name="viewport" content="width=device-width, initial-scale=1.0" />
        <meta http-equiv="X-UA-Compatible" content="ie=edge" />
        <title>Document</title>
    </head>
    <body>
        <script>
            function Person(name, age) {

                /* 人与人的个性 */
                this.name = name;
                this.age = age;
                
                /* 
                打招呼方法 
                Person实例与实例的共性：人人打招呼的方式都雷同
                */
                this.sayHi = function() {
                    console.log("hi");
                };
            }

            // 在这一次执行的时候 开辟了一个 a 函数的空间
            // 吧这个 a 函数空间的地址给了 p1.sayHi
            const p1 = new Person("Jack", 18);

            // 在这一次执行的时候，开辟了一个 a 函数的空间
            // 把这个 a 函数的空间地址给了 p2.sayHi
            const p2 = new Person("Rose", 20);

            // 两个对象里面有一个同样的函数
            console.log(p1.sayHi === p2.sayHi); // false

            // 证明了一个 每次 new 的时候new 出来的对象中的函数都是一个单独的空间
        </script>
    </body>
</html>
